#!/bin/bash

# Pulldata 功能测试脚本

set -e

echo "=== Pulldata 功能测试 ==="

# 检查程序是否存在
if [ ! -f "./pulldata" ]; then
    echo "错误: pulldata 程序不存在，请先构建程序"
    exit 1
fi

echo "✅ 程序文件存在"

# 测试帮助信息
echo "测试帮助信息..."
./pulldata --help > /dev/null
echo "✅ 帮助信息正常"

# 测试默认参数
echo "测试默认参数..."
./pulldata --server "http://example.com" --start "2025-01-01" --end "2025-01-31" > /dev/null 2>&1 || true
echo "✅ 参数解析正常"

# 测试数据质量检查功能
echo "测试数据质量检查功能..."
# 创建一个测试输出目录
mkdir -p test_output

# 测试空数据处理
echo "测试空数据处理..."
./pulldata --server "http://example.com" --start "2025-01-01" --end "2025-01-01" --output "test_output" > /dev/null 2>&1 || true
echo "✅ 空数据处理正常"

# 清理测试目录
rm -rf test_output

# 创建测试输出目录
echo "创建测试输出目录..."
mkdir -p test_output

# 测试网络连接（模拟）
echo "测试网络连接..."
if curl -s --connect-timeout 5 http://xxchuan.com:3036 > /dev/null 2>&1; then
    echo "✅ 服务器连接正常"
    
    # 实际测试下载（小范围）
    echo "开始实际下载测试..."
    ./pulldata \
        --server "http://xxchuan.com:3036" \
        --start "2025-01-01" \
        --end "2025-01-01" \
        --output "test_output" \
        --page-size 5 \
        --timeout "10s" \
        --retries 2 || {
        echo "⚠️  下载测试失败（可能是网络问题或服务器问题）"
    }
else
    echo "⚠️  无法连接到服务器，跳过实际下载测试"
fi

# 检查输出目录
if [ -d "test_output" ]; then
    file_count=$(find test_output -name "*.json" | wc -l)
    echo "✅ 输出目录创建成功，包含 $file_count 个文件"
    
    # 检查是否有被删除的失败文件
    if [ $file_count -eq 0 ]; then
        echo "ℹ️  没有保存任何文件（可能是数据质量检查过滤了所有数据）"
    fi
else
    echo "⚠️  输出目录未创建"
fi

echo ""
echo "=== 测试完成 ==="
echo "如果看到 ✅ 标记，说明功能正常"
echo "如果看到 ⚠️  标记，可能是网络或服务器问题"
echo "如果看到 ℹ️  标记，这是正常的数据过滤结果"
echo ""
echo "清理测试文件..."
rm -rf test_output

echo "测试完成！" 